Systems and methods for conversion of documents to reusable content types

ABSTRACT

Embodiments of systems and methods for the conversion of documents to reusable content types are disclosed herein. Embodiments may extract the content and metadata of the original document and identify a set of reusable resources from the content and metadata. These reusable resources can each be one of a set of content types common across a plurality of document authoring platforms. Each of the content types may be represented using a content type object associated with that content type. The reusable resources identified by the parsing of the content and metadata of the original document may thus be represented with corresponding reusable objects in a content type format common to a plurality of document authoring tools.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation of, and claims a benefit of priorityunder 35 U.S.C. 120 from, U.S. patent application Ser. No. 17/191,478,filed Mar. 3, 2021, entitled “SYSTEMS AND METHODS FOR CONVERSION OFDOCUMENTS TO REUSABLE CONTENT TYPES,” which is fully incorporated byreference herein for all purposes.

TECHNICAL FIELD

This disclosure relates generally to the management, development,editing, deployment, and communication of content. More particularly,this disclosure relates to embodiments of systems and methods forcontent conversion. Even more specifically, this disclosure relates toembodiments of systems and methods for conversion of documents intocontent types reusable across document composition platforms.

BACKGROUND

Ever since the advent of the computer networks (including the Internet),enterprise environments have been steadily growing more complicated,encompassing an ever-expanding amount of increasingly complex digitalassets (or just assets). A digital asset, in essence, is anything thatexists in a binary format that may exist in the enterprise environmentor otherwise be utilized by the enterprise. The digital assets of anenterprise may thus include a variety of digital content (content)including text, images, aural or video content, templates used incontent delivery or other types of content. For purposes of thisdisclosure, the terms document and content will be used interchangeablywith the term asset and understood to have the same definition as anasset.

In an enterprise environment, these assets may be widely distributed andused for a wide variety of purposes in association with that enterprise.To aid in managing and using their various assets, many enterprises haveemployed a number of content management systems, such as digital assetmanagement (DAM) systems, content management systems (CMS), web contentmanagement (WCM) systems, enterprise content management (ECM) systems,etc.

These enterprises, or the users within such enterprises, may thus have alarge number of document composition or authoring (used interchangeably)platforms. These document authoring platforms may range from simple wordprocessing applications such as Microsoft Word or the like (which may beused with content management systems or the like), to proprietarydocument authoring tools (e.g., applications or interfaces that areprovided by document authoring platforms, such as proprietary thinclient (e.g., browser based) or thick client interfaces.

One example of such document authoring platforms are customercommunications management software platforms.

Specifically, the distribution of content across an enterprise in thesevarious management systems, along with widespread and distributed use ofsuch content, therefore, results in an extremely complex web ofinterconnectivity involving hundreds or sometimes thousands of systemsor people.

Oftentimes enterprises (e.g., almost any profit or non-profit entitysuch as a service company, an insurance or utility company or anothertype of entity) wish to communicate with their customers or otherentities with whom they wish to engage (e.g., distributors, partners,regulatory bodies, donators, etc.) via multiple communications channels.While the types of content management systems discussed above are usefulin creating, versioning and controlling access to content, they do notprovide a convenient mechanism to integrate such content in outboundcommunications across multiple channels.

To address the need for multi-channel communication, an enterprise mayintegrate a customer communication management (CCM) system. CCM systemscan provide an enterprise with an application to improve outboundcommunications with their distributors, partners, regulatory bodies,customers or others. Such CCM systems may allow an enterprise to improvethe creation, delivery, storage or retrieval of outbound communications,including communications used for marketing, new product introductions,renewal notifications, claims correspondence, documentation, billstatements, advertising, payment notifications, etc. Thesecommunications can occur through a number of output channels includingemail, Short Message Service (SMS), web pages, or mobile applications.

Oftentimes during the authoring of these communications then, users ofthese CCM system may desire to use portions of content from otherdocuments (e.g., from previously generated communications for otherpurposes). While prevalent in the context of CCM systems, this desire isnot confined to CCMs. Thus, the example of a user's desire to reusecontent in the context of a CCM it but a microcosm of a more generaldesire in document authoring platforms. Namely, the desire to reusecontent from documents in the authoring of other documents.

The reuse of the content of other documents is, however, not straightforward. Documents may not have been generated by the same documentauthoring platform and thus be in a different format. Accordingly, evenif content could be extracted from these documents, it may not be informat that is consumable or other usable by the document authoringplatform being utilized by a user. Additionally, there just may be nosimple and straightforward way to extract certain types of content fromdocuments generally, or to identify extracted content as a certain typeof content.

What is desired therefore, are systems and methods for the extraction ofmultiple types of content of documents into a reusable format consumableacross multiple document authoring platforms.

SUMMARY

To continue elaborating on the above referenced problems and desires, asdiscussed a user may wish to reuse some portion of content available ina document when authoring or composing another document. The originaldocument may be in a particular document format such as a formatutilized by a document authoring system or another type of format suchas a print stream format including, for example, Portable DocumentFormat (PDF) Advanced Function Printing (AFP), line data, metacode,Printer Command Language (PCL), Tag Image File Format (TIFF), etc.

Accordingly, even in cases where content of the document may beextracted, the extracted content is extracted solely as text or imagefragments. There is no mechanism to extract contents based on their mostrelevant and matching content type In other words, the content loses thecontext of what type of content to which that text or image belongs.Thus, the user is limited in their ability to utilize any extractedcontent and may not be able to use such extracted content in the mannerin which it most relevant (e.g., may not be able to reuse the extractedcontent as the type of content it was in the original document, such asa document header and footers, email, subject or document title,date/time, signature, table, graph, chart, etc.).

What is desired, therefore is that content be extracted as a particularcontent type in a format associated with that content type that can beeasily reused by a number of document authoring platforms and that maybe common to those document authoring platforms.

To that end, embodiments of systems and methods for the conversion ofdocuments to reusable content types are disclosed herein. Embodimentsmay receive an original document in a particular format, such as a printstream format (e.g., PDF) or the like and extract the content andmetadata of the original document. This content and metadata mayinclude, for example, the text or images included in the originaldocument in addition to metadata identifying the location of the text orimage. This location information may include X-axis or Y-axiscoordinates on a character by character basis or, in some instances mayinclude the identification of paragraphs of text along with suchlocation information.

The content and metadata of the original document can be parsed toidentify a set of reusable resources from the content and metadata.These reusable resources can each be one of a set of content types.These content types may be content types that are common across aplurality of document authoring platforms and may include, for example,a header, a footer, a document title, a date, an email, or a signature.Thus, in some embodiments the content and metadata of the originaldocument may be processed independently to identify any reusableresources of each specific content type.

In particular embodiments, the identification of the content type of thereusable resource may be based on the content of the text or metadata ofthe reusable resource, including for example, patterns within thecontent or the location information of the reusable resource or thecontent of the original document generally. For instance, analysis ofthe content to determine such content types may include pattern matchingor connected component analysis.

Moreover, each of the content types may be represented using a contenttype object associated with that content type. A content type object fora content type may identify the content type and include the content andmetadata for that content type such the content type object may beutilized in the authoring of a document to include that content of thatcontent type object in the document being authored. Specifically, acontent type object may be in a content type format common to aplurality of document authoring tools.

Thus, the reusable resources identified by the parsing of the contentand metadata of the original document may be represented withcorresponding reusable objects, where each of the reusable objects is aninstance of a content type object representing the specific content typeof the corresponding reusable resource and including metadata andcontent of the reusable resource as extracted from the received originaldocument and where each of the reusable objects is in an associatedcontent type format common to a plurality of document authoring tools.In certain instances, this metadata can include the location informationfor the reusable resource.

These reusable objects can be persisted (e.g., stored) at a documentauthoring server (or locally on a user's device) and provisioned for usein association with the original document such that the reusableresource objects are adapted for use in authoring other documents usingone of the plurality of document authoring tools (e.g., that can consumesuch content type objects). In this manner, when a definition of anotherdocument including an identified one of the set of resources is receivedthis newly defined document can be populated using the associatedreusable resource object for the identified resource such that thesubsequent document includes the content of the reusable of the resourceobject.

Thus, embodiments as disclosed herein may have a number of advantages,including the ability to find the content from different documentformats and map them to the most relevant content type to return orutilize identified content information appropriately along with theirassociated attributes. These attributes and content for a reusableresource may be represented in reusable objects associated with anappropriate content type. Thus, a reusable resource is associated withthe appropriate information for the corresponding content type (e.g.,table information may be returned in terms of rows and columns, whiletwo axis graphs may be returned with its X and Y axis information,etc.). Furthermore, the reusable resources are in a content type formatcommon to a plurality of document authoring tools. This enables theseresources to be easily utilized in the authoring of subsequentdocuments. Moreover, a user may be able to use the content of thesereusable resources in a similar manner as supported in a documentauthoring application. Content identification and mapping to a contenttype may be consistent regardless of a client application or documentcomposition tool using such reusable resources, or the content includedtherein. Additionally, document authoring applications can utilize thesereusable resources for efficiently migrating content of documents fromsource to target environments in a manner that allows simple reuse andediting of such content.

These, and other, aspects of the invention will be better appreciatedand understood when considered in conjunction with the followingdescription and the accompanying drawings. The following description,while indicating various embodiments of the invention and numerousspecific details thereof, is given by way of illustration and not oflimitation. Many substitutions, modifications, additions orrearrangements may be made within the scope of the invention, and theinvention includes all such substitutions, modifications, additions orrearrangements.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings accompanying and forming part of this specification areincluded to depict certain aspects of the invention. A clearerimpression of the invention, and of the components and operation ofsystems provided with the invention, will become more readily apparentby referring to the exemplary, and therefore non-limiting, embodimentsillustrated in the drawings, wherein identical reference numeralsdesignate the same components. Note that the features illustrated in thedrawings are not necessarily drawn to scale.

FIG. 1 is a diagrammatic representation of an architecture of adistributed enterprise environment including a document authoringsystem.

FIG. 2 is a flow diagram of one embodiment of a method for representingreusable objects.

FIG. 3A is a flow diagram of one embodiment of a method for representinga header content type.

FIG. 3B is a depiction of an example of a header.

FIG. 4A is a flow diagram of one embodiment of a method for representinga repeatable header.

FIG. 4B is a depiction of an example of repeatable header.

FIG. 5A is a flow diagram of one embodiment of a method for representinga subject or title.

FIG. 5B is a depiction of an example of an example of a subject ortitle.

FIG. 6 is a flow diagram of one embodiment of a method for representingan email.

FIG. 7 is a flow diagram of one embodiment of a method for representinga date or time.

FIG. 8 is a depiction of an example of an example of an email and dateor time.

FIG. 9A is a flow diagram of one embodiment of a method for representinga signature.

FIG. 9B is a depiction of an example of an example of a signature.

FIG. 10A depicts one embodiment of an interface displaying a document.

FIG. 10B depicts reusable resources associated with the example of FIG.10A.

DETAILED DESCRIPTION

The invention and the various features and advantageous details thereofare explained more fully with reference to the non-limiting embodimentsthat are illustrated in the accompanying drawings and detailed in thefollowing description. Descriptions of well-known starting materials,processing techniques, components and equipment are omitted so as not tounnecessarily obscure the invention in detail. It should be understood,however, that the detailed description and the specific examples, whileindicating some embodiments of the invention, are given by way ofillustration only and not by way of limitation. Various substitutions,modifications, additions and/or rearrangements within the spirit and/orscope of the underlying inventive concept will become apparent to thoseskilled in the art from this disclosure.

Before discussing embodiments in more detail, it may be helpful todiscuss some useful context. As discussed, enterprise environments havebeen steadily growing more complicated, encompassing an ever-expandingamount of increasingly complex content. In an enterprise environment,these assets may be widely distributed and used for a wide variety ofpurposes in association with that enterprise. To aid in managing andusing their various assets, many enterprises have employed a number ofcontent management systems, such as digital asset management (DAM)systems, content management systems (CMS), web content management (WCM)systems, enterprise content management (ECM) systems, etc.

These enterprises, or the users within such enterprises, may thus have alarge number of document composition or authoring (used interchangeably)platforms. These document authoring platforms may range from simple wordprocessing applications such as Microsoft Word or the like (which may beused with content management systems or the like), to proprietarydocument authoring tools (e.g., applications or interfaces that areprovided by document authoring platforms, such as proprietary thinclient (e.g., browser based) or thick client interfaces.

Often times during the authoring of these documents across these variousdocument authoring platforms or applications users may desire to useportions of content from other documents (e.g., from previouslygenerated documents for other purposes). The reuse of the content ofother documents is, however, not straight forward. Documents may nothave been generated by the same document authoring platform and thus bein a different format. Accordingly, even if content could be extractedfrom these documents, it may not be in format that is consumable orother usable by the document authoring platform being utilized by auser. Additionally, there just may be no simple and straightforward wayto extract certain types of content from documents generally, or toidentify extracted content as a certain type of content.

Specifically, original documents may be in a particular document formatsuch as a format utilized by a document authoring system or another typeof format such as a print stream format including, for example, PortableDocument Format (PDF) Advanced Function Printing (AFP), line data,metacode, Printer Command Language (PCL), Tag Image File Format (TIFF),etc.

Thus, even in cases where certain content of the document may beextracted, the extracted content is extracted solely as text or imagefragments. There is no mechanism to extract contents based on their mostrelevant and matching content type In other words, the content loses thecontext of what type of content to which that text or image belongs.Thus, the user is limited in their ability to utilize any extractedcontent and may not be able to use such extracted content in the mannerin which it most relevant (e.g., may not be able to reuse the extractedcontent as the type of content it was in the original document, such asa document header and footers, email, subject or document title,date/time, signature, table, graph, chart, etc.).

This situation has not curtailed users' desire to extract of multipletypes of content of documents into a reusable format consumable acrossmultiple document authoring platforms. What is desired, therefore isthat content be extracted as a particular content type in a formatassociated with that content type that can be easily reused by a numberof document authoring platforms, and that may be common to thosedocument authoring platforms.

To that end, embodiments of systems and methods for the conversion ofdocuments to reusable content types are disclosed herein. Embodimentsmay receive an original document in a particular format, such as a printstream format (e.g., PDF) or the like and extract the content andmetadata of the original document. This content and metadata mayinclude, for example, the text or images included in the originaldocument in addition to metadata identifying the location of the text orimage. This location information may include X-axis or Y-axiscoordinates on a character by character basis or, in some instances mayinclude the identification of paragraphs of text along with suchlocation information.

The content and metadata of the original document can be parsed toidentify a set of reusable resources from the content and metadata.These reusable resources can each be one of a set of content types.These content types may be content types that are common across aplurality of document authoring platforms and may include, for example,a header, a footer, a document title, a date, an email, or a signature.Thus, in some embodiments the content and metadata of the originaldocument may be processed independently to identify any reusableresources of each specific content type.

In particular embodiments, the identification of the content type of thereusable resource may be based on the content of the text or metadata ofthe reusable resource, including for example, patterns within thecontent or the location information of the reusable resource or thecontent of the original document generally. For instance, analysis ofthe content to determine such content types may include pattern matchingor connected component analysis.

Moreover, each of the content types may be represented using a contenttype object associated with that content type. A content type object fora content type may identify the content type and include the content andmetadata for that content type such the content type object may beutilized in the authoring of a document to include that content of thatcontent type object in the document being authored. Specifically, acontent type object may be in a content type format common to aplurality of document authoring tools.

Thus, the reusable resources identified by the parsing of the contentand metadata of the original document may be represented withcorresponding reusable objects, where each of the reusable objects is aninstance of a content type object representing the specific content typeof the corresponding reusable resource and including metadata andcontent of the reusable resource as extracted from the received originaldocument and where each of the reusable objects is in an associatedcontent type format common to a plurality of document authoring tools.In certain instances, this metadata can include the location informationfor the reusable resource.

These reusable objects can be persisted (e.g., stored) at a documentauthoring server (or locally on a user's device) and provisioned for usein association with the original document such that the reusableresource objects are adapted for use in authoring other documents usingone of the plurality of document authoring tools (e.g., that can consumesuch content type objects). In this manner, when a definition of anotherdocument including an identified one of the set of resources is receivedthis newly defined document can be populated using the associatedreusable resource object for the identified resource such that thesubsequent document includes the content of the reusable of the resourceobject.

Referring then to FIG. 1, an example of an architecture of a distributedcomputing environment with an embodiment of a document authoring systemis depicted. Computing environment may include a document authoringsystem 110 (e.g., a CMS, a DAM, a WCM, an ECM or a CCM), coupled to userdevices 102 over network 104. Network 104 may be the Internet, anintranet, a wireless or wired network, a LAN, a WAN, some combination ofthese types of networks or another type or types of network.

The document authoring system 110 may operate generally to allow usersat user devices 102 to author (e.g., access, create or modify) documentsusing a provided user interface 158 of a document authoring application150. These documents may, for example, be stored locally in a data storeassociated with the document authoring system 110 or stored at a remotelocation.

These enterprises, or the users within such enterprises, may thus have alarge number of document composition or authoring (used interchangeably)platforms or applications (generally referred to as a document authoringapplication 150). These document authoring platforms may range fromsimple word processing applications such as Microsoft Word or the like(which may be used with content management systems or the like), toproprietary document authoring tools (e.g., applications or interfacesthat are provided by document authoring platforms, such as proprietarythin client (e.g., browser based) or thick client interfaces. Thus, inone embodiment, a document designer 140 at the document authoring system110 can interact with, or provide, the document authoring application150 to provide user interface 158 allowing a user to author a document.

In conjunction with the creation or modification of documents using thedocument authoring application 150, the document authoring system 110may allow the user to access or incorporate content from otherdocuments. These other documents may be documents authored using thedocument authoring platform 110 or documents obtained from other sourcesentirely.

Document conversion service 142 may, for example, be a microservice thatmay be accessible through a RESTful interface, or an applicationprogramming interface such that a document authoring application 150 maysend a request to the document conversion 142 requesting that thereusable resources in the document be identified and returned. Thedocument conversion service 142 can identify a set of reusable resourcesfrom the document. These reusable resources can each be one of a set ofcontent types that may be common across a plurality of documentauthoring applications 150 and may include, for example, a header, afooter, a document title, a date, an email, or a signature.

The document conversion service 142 constructs a reusable object (alsoreferred to as a reusable resource object) 144 for each identifiedreusable resource. Each reusable resource may be an instance of acontent type object associated with the content type of that reusableresource. These reusable objects 144 can be persisted (e.g., stored) ata document authoring system 110 and returned (or identified) to therequesting document authoring application 150 for use in authoring otherdocuments using the document authoring application 150 that originatedthe request. Additionally, the user at the device 102 may utilizeanother document authoring application 150 to author document using thereusable objects 144 or another user at another document authoringapplication 150 (e.g., of another type) may also use the reusableobjects 144 to author a document.

To illustrate in more detail, according to particular embodiments a userat a document authoring application 150 may indicate that they wish toidentify or reuse content of a particular document. The documentauthoring application may then send a request for identification ofreusable resources to the document conversion service 142. Embodimentsof the document conversion service 142 may thus receive an originaldocument in a particular format, such as a print stream format (e.g.,PDF) or the like. In some cases, the document may be converted from asource format to the print stream format before the request to thedocument conversion service 142 is sent from the document authoringapplication 150 or after the document is received at the documentconversion service.

The document conversion service 142 may access a content and metadataextractor 146 to extract the content and metadata of the receivedoriginal document (e.g., in the print stream format). The content andmetadata extractor 146 may be a library that may be accessed, forexample, through a library interface 148. The content and metadataextractor may, for example, Apache pdf, Apache pdfbox or Apache POI.Thus, the document conversion service 142 may provide the originaldocument to an appropriate content and metadata extractor 146 forcontent and metadata extraction based on a format of the originaldocument received.

The content and metadata extractor 146 may thus extract the content andmetadata from the original document and return this content and metadatafor the original document to the document conversion service 142. Thiscontent and metadata may include, for example, the text or imagesincluded in the original document in addition to metadata identifyingthe location of the text or image. This location information may includeX-axis or Y-axis coordinates on a character by character basis for thecontent or, in some instances may include the identification ofparagraphs of text along with such location information. Theidentification of these paragraphs in the metadata may also include theidentification of child paragraphs or parent paragraphs in certaincases.

The content and metadata of the original document can then be evaluatedto identify a set of reusable resources from the content and metadata.Here, document conversion service 142 may pass the content and metadatato reusable resource constructor 162, using for example the libraryinterface 148. Reusable resource constructor 162 may parse the contentand metadata to identify a set of reusable resources from the contentand metadata. These reusable resources can each be one of a set ofcontent types. These content types may be content types that are commonacross a plurality of document authoring platforms and may include, forexample, a header, a footer, a document title, a date, an email, or asignature. In some embodiments, reusable resource constructor 162 mayprocess the content and metadata of the original document independently(e.g., using a different evaluation for each content type) to identifyany reusable resources of each specific content type.

In particular embodiments, the identification of the content type of thereusable resource may be based on the content of the text or metadata ofthe reusable resource, including for example, patterns within thecontent or the location information of the reusable resource or thecontent of the original document generally. For instance, analysis ofthe content to determine such content types may include pattern matchingor connected component analysis.

Moreover, each of the content types may be represented using a contenttype object associated with that content type. A content type object fora content type may identify the content type and include the content andmetadata for that content type such the content type object may beutilized in the authoring of a document to include that content of thatcontent type object in the document being authored.

Specifically, in embodiments a content type object may be in a contenttype format common to (e.g., a standardized format or a format adaptedto be utilized by a plurality of document authoring tools). Thedefinitions 164 for these content type objects may be defined at thedocument authoring system 110. Thus, a reusable object 144 for aparticular content type may be instantiated from a content type objectdefinition 164 for that content type and populated with the content andmetadata of the identified reusable resource according to the definition164 of that content type object. For example, the reusable object 144 ispopulated with the appropriate content and metadata for that contenttype, where the content and metadata used to populate the reusableobject for the identified reusable resource is obtained from the contentand metadata associated with the identified reusable resource asobtained from the original document. Examples of the definitions forsuch content type objects that may be utilized in certain embodimentsare included herein in Appendix A.

Thus, the reusable resources identified by the parsing of the contentand metadata of the original document may be represented withcorresponding reusable objects, where each of the reusable objects is aninstance of a content type object defined in the definitions 164 forthese content type objects. Each reusable object 144 (e.g., instance ofa content type object) may represent the specific content type of thecorresponding reusable resource and include metadata and content of theidentified reusable resource as extracted from the received originaldocument. In certain instances, this metadata can include the locationinformation for the reusable resource. These reusable objects 144 arethus in an associated content type format common to a plurality ofdocument authoring tools.

These reusable objects 144 can be persisted (e.g., stored) at a documentauthoring system 110 (or locally on a user's device 192) and provisionedfor use (e.g., in association with the original document) such that thereusable resource objects 144 are adapted for use in authoring otherdocuments using one of the plurality of document authoring applications150 (e.g., that can consume such content type objects).

Moreover, the document conversion service 142 may return the identifiedcontent types (e.g., along with their corresponding reusable objects144) to the requesting document authoring application 150 at the userdevice. In this manner, when a definition of another document includingan identified one of the set of resources is received (e.g., at documentauthoring system 110 from the document authoring application 150) thisnewly defined document can be populated using the associated reusableresource object for the identified resource such that the subsequentdocument includes the content of the reusable of the resource object144.

As an example of how a user may utilize such a document authoring system150, a user at a document authoring application 150 may wish to create adocument (e.g., an insurance template or communication) using existingcontent from a set of documents (e.g., pdf documents). A user can usethe document authoring application 150 (by for example, clicking on an“Import Contents” button on the interface 158) to import the contentfrom the input documents. The user may be presented an interface wherethere is a provision to upload or indicate a document (e.g., includingthe PDF document files) using “Upload” button. The user can review thecontent extracted from the input documents shown in a view in theinterface 158. The user can also use the interface 158 to select aspecific reusable resource for a content type, or a set of reusableresource for multiple content types, to be added to a document beingauthored using a button (e.g., a “Select” button) presented in theinterface 158. Once the content for the selected reusable resources isadded into the document, the user may change or extend the content asdesired. In this manner, the user may be able to work with content asper its type and applicable operations.

Moving then to FIG. 2, one embodiment of a method for constructingreusable object from identified reusable resources of particular contenttypes that may be employed by embodiment of a document authoring systemis illustrated. Initially, a user at a document authoring applicationmay indicate that they wish to identify or reuse content of a particulardocument. An original document may thus be received in a particularformat, such as a print stream format (e.g., PDF) or the like (STEP202).

The document conversion service may access a content and metadataextractor to extract the content and metadata of the received originaldocument (e.g., in the print stream format) (STEP 204). The content andmetadata extractor may be a library such as Apache pdf, Apache pdfbox orApache POI. The content and metadata extractor may thus extract thecontent and metadata from the original document and return this contentand metadata for the original document.

This content and metadata may include, for example, the text or imagesincluded in the original document in addition to metadata identifyingthe location of the text or image. This location information may includeX-axis or Y-axis coordinates on a character by character basis for thecontent or, in some instances may include the identification ofparagraphs of text along with such location information. Theidentification of these paragraphs in the metadata may also include theidentification of child paragraphs or parent paragraphs in certaincases.

The content and metadata of the original document can then be evaluatedto identify a set of reusable resources from the content and metadata.Specifically, embodiments may read the extracted content and metadata ona line by line basis (STEP 206) and parse the lines of extracted contentand metadata of the original document to identify each of set of contenttypes that are present in the original document (STEP 208). Inparticular, a content type identifier (e.g., an identifier process) foreach of a set of content types may be independently applied to the linesof the extracted content and metadata of the original document (STEP210) to validate (e.g., determine) any instances of reusable resourcesof that content type in the original document (STEP 212) and construct areusable object for that content type (STEP 214) (including extractingcontent and the metadata for that reusable resource to populate areusable object of the appropriate content type object). The reusableobjects may have an identifier (e.g., for subsequent reuse), anidentifier for the content type (e.g., a CONTENT_TYPE) and include thepertinent content and metadata for that content type object for thecontent type.

These reusable objects can be persisted (e.g., stored) at a documentauthoring system or locally on a user's device) and provisioned for use(e.g., in association with the original document) such that the reusableresource objects are adapted for use in authoring other documents usingone of the plurality of document authoring applications (e.g., that canconsume such content type objects) (STEP 216). Moreover, the identifiedcontent types (e.g., along with their corresponding reusable objects)may be provided to a document authoring application at the user devicefor use in authoring documents.

Looking then at FIG. 3A, one embodiment of a method for a content typeidentifier for a header content type is depicted. FIG. 3B depicts agraphical example of such a content type. It will be understood that thesame or a similar method may be applied to implement a content typeidentifier for a footer content type. Here, the YAXIS_HEADER value maybe a positional value (e.g., absolute value or range) that may designatea y axis (e.g., coordinate) value above which a header (or below which afooter) may be identified. Such a YAXIS_HEADER value is graphicallyillustrated in FIG. 3B. A MAX_PAGE_NO value may be an initial number ofpages of the original document to which the method may be applied todetermine if a header (or footer) exists (e.g., if a header does notappear before the MAX_PAGE_NO value the header content identifier maycease processing the document).

Accordingly for each page in the original document (STEP 302), eachsection of content of the page identified as a paragraph may beextracted from the content and metadata for the document (STEP 304).Thus, each page of the document may be evaluated for header, startingwith the first page. In particular for a page (e.g., the content andmetadata for a page of the original document), starting with the initialparagraph it can be determined if that paragraph is above (e.g., has a Yaxis coordinate less than) the YAXIS_HEADER value (STEP 306). If so (Ybranch of STEP 306), and if the paragraph is from the same page (e.g.,as determined by the page number associated with the paragraph) (STEP308) it may be added to the content of a reusable resource for a headercontent type and the metadata of the resource object for the header(e.g., the coordinates, etc.) may be updated based on the paragraph justadded (STEP 310). The next paragraph of the page can then be extractedand evaluated to see if it is above (e.g., has a Y axis coordinate lessthan) the YAXIS_HEADER value (STEPS 304, 306).

If the paragraph is from a different page or is not above theYAXIS_HEADER value, the created header resource object may be stored(STEP 308). Once a paragraph of a page is encountered that is below(e.g., has a Y axis coordinate more than) the YAXIS_HEADER value (Nobranch of STEP 306) it can be determined if the number of the next pageof content of the original document is less than the MAX_PAGE_NO value(STEP 312). If the number of the page is less than (or equal to) theMAX_PAGE_NO value (Y branch of STEP 312) the next page may be evaluated,while if the number of the page is greater than the MAX_PAGE_NO value (Nbranch of STEP 312), the header reusable resource objects may bereturned or persisted (STEP 314). In this manner, it can be determinedfor each page if that page has a header where the header may be acomposite of each paragraph of the page that is identified as above theYAXIS_HEADER value. It will be noted that other validations may beperformed in association with the determination of a header reusableobject, including for example, comparing if similar content appears atthe same position in multiple pages and is appearing consistently at thesame location or has the same content. This may be referred to asrepeating header.

FIG. 4A depicts one embodiment of a method for a content type identifierfor a repeatable header content type. Embodiments of such a content typeidentifier may thus attempt to identify one or more initial lines ofevery page that are similar to the initial lines of a first page of theoriginal document. FIG. 4B depicts a graphical example of such a contenttype as it may occur in an original document. Again, a MAX_PAGE_NO valuemay be an initial number of pages of the original document to which themethod may be applied to determine if a repeatable header exists (e.g.,if a repeatable header does not appear before the MAX_PAGE_NO value therepeatable header content identifier may cease processing the document).

Initially then the MAX_PAGE_NO of pages or all the pages of the originaldocument may be evaluated by the repeatable header content typeidentifier (STEP 402). To evaluate these pages, the content and metadatafor these pages may be obtained (STEP 402). The content and metadata canbe evaluated (or paragraph by paragraph, etc.) basis to determine thecontent and metadata associated with the first page of the originaldocument (e.g., page number one of the original document) (STEP 404).The content and metadata associated with the first page of the originaldocument (Y branch of STEP 404) can be parsed on a line by line (orparagraph by paragraph, etc.) basis and stored such that there is eachline of the first page is stored and associated with its correspondingpage number, line number on the page, and the content and metadataassociated with that line (STEP 406).

Once all the lines of the first page are stored (N branch of STEP 404)one or more of the subsequent pages can then be processed. Specifically,starting with the second page, each page may be processed in order,where processing a page may include determining the content of that pageon a line by line (e.g., or paragraph by paragraph, etc.) basis and eachline of that page may be compared with the corresponding line of thefirst page (STEP 408). In other words, the content of the first line ofthe page being processed may be compared with the first line of thefirst page followed (if needed) by the second line of the page beingprocessed being compared with the second line of the first page, etc.

Specifically, beginning with the first line and taking the lines of thepage being processed in order, for each line of the page being processedthat matches a corresponding line in the first page (Y branch of STEP410) that line may be considered as part of a repeatable header (STEP414) and added to the content of a reusable resource for a repeatableheader content type (STEP 416). As can be seen, the lines may becompared in order such that as soon as lines are not matched anysubsequent lines may not be considered eligible for a reputable headerand there may be no need to compare such lines. Additionally, themetadata of the resource object for the repeatable header (e.g., thecoordinates, etc.) may be updated based on the line just added.

At the point where it is determined that a line of the page beingprocessed does not match a corresponding line of the first page (Nbranch of STEP 410) it can be determined if the number of the next pageof content of the original document is equal to (or greater than) theMAX_PAGE_NO value (STEP 412). If the number of the page is less than theMAX_PAGE_NO value (N branch of STEP 412) the next page may be evaluated,while if the number of the page is equal to (or greater than) theMAX_PAGE_NO value (Y branch of STEP 412), the repeatable header reusableresource objects may be returned or persisted (STEP 418). In someembodiments, if it is determined that a repeatable header reusableresource is not present on the second page of the original document therepeatable header content type may cease processing the content andmetadata of the original document (e.g., the MAX_PAGE_NO value may betwo).

Turning now to FIG. 5A, one embodiment of a method for a content typeidentifier for a document title or subject (e.g., an abstract orsummary) content type is depicted. This content type may be for a headeror title appearing at a top of a document. Embodiments of such a contenttype identifier may thus attempt to identify one or more initialparagraphs of a page that are different than subsequent paragraphs ofthe page. FIG. 5B depicts a graphical example of such a content type asit may occur where paragraph one may be considered a document title orsubject content type.

Here, a PARAGRAPH_NO_LIMIT may be a value indicating an initial numberof paragraphs of each page (e.g., as illustrated a first page, but whichmay apply to any page of the original document in other embodiments) towhich the method may be applied to determine if a document title orsubject exists (e.g., if a document title or subject does not appearbefore the PARAGRAPH_NO_LIMIT of the page the document title or subjectcontent identifier may cease processing the page or document).

Thus, initially the content and metadata associated with the first pageof the original document can be parsed on a paragraph by paragraph(e.g., or line by line) basis and stored (STEPS 502, 504) such that eachparagraph of the first page stored and associated with its content andmetadata associated with that paragraph, including the criteriaassociated with that paragraph such as the font, style, size, andlocation information. This metadata (e.g., criteria) for each paragraphmay thus include location information for the paragraph such as thecoordinates on the page of the original document associated with theparagraph or maximum or minimum X or Y coordinates or a X axis or Y axisdifference (e.g., a difference between the maximum or minimum X or Ycoordinates respectively). These X axis or Y axis difference may give anindication of the size of the paragraph.

The paragraphs the first page can then be evaluated in order beginningwith the first paragraph of the page. Specifically, if the number of theparagraph being evaluated is less than the PARAGRAPH_NO_LIMIT (Y branchof STEP 506) the criteria of that paragraph may be compared with theprevious paragraph (e.g., if it is not the first paragraph) (STEP 508).Specifically, the criteria associated with the paragraph such as thelocation information (e.g., X axis or Y axis difference) of theparagraph may be compared with the criteria associated with the previousparagraph (e.g., to determine

If the paragraph matches the previous paragraph (e.g., or is the firstparagraph of the page) (Y branch of STEP 510) that paragraph may beconsidered as part of a potential document title or subject content typereusable resource and added to the content of a reusable resource objectfor a document title or subject content type (STEP 518). Additionally,the metadata of the resource object for the document title or subjectcontent type (e.g., the coordinates, etc.) may be updated based on theparagraph just added. The next paragraph of the page can then beevaluated (STEP 506).

If there is not a match between the paragraph and the previous paragraph(N branch of STEP 510) or the maximum number of paragraphs to evaluatehas been exceeded (N branch of STEP 506) it can be determined if thecurrent paragraph being evaluated is the last paragraph of the page(e.g., if the number of the paragraph being evaluated is the same as thetotal number of paragraphs on the page) (STEP 512). If the currentparagraph being evaluated is the last paragraph of the page (Y branch ofSTEP 512) it can be determined that there is no initial subject or titleand the content identifier for the subject or title may exit (STEP 516).Here, then, each paragraph has been evaluated without finding adifference between the criteria of the first paragraph and anysubsequent paragraph. Such a situation may indicate that all paragraphsare substantially the same based on the criteria and none may beidentified as a subject or title.

Conversely, if the current paragraph being evaluated is not the lastparagraph of the page (N branch of STEP 512) the assembled subject ortitle reusable resource objects may be returned or persisted (STEP 514).Here, then, it has been determined that an initial number of paragraphsare different (e.g., their criteria does not match), and thus theinitial number of paragraph may comprise a title or subject reusableresource and represented in a resource object for that document andtitle.

Certain reusable resources may be determined using pattern matching orthe like. For example, FIG. 6 depicts one embodiment of a method for acontent type identifier for an email address content type while FIG. 7depicts one embodiment of a method for a content type identifier for adate/time content type. FIG. 8 depicts a graphical example of an emailcontent type and a date/time content type that may appear in a document.

First with reference to FIG. 6, one embodiment of a method for a contenttype identifier for an email address content type is depicted. Here, thecontent and metadata associated with each paragraph of a page (e.g.,where all pages or a subset of pages of the original document may beevaluated) may be obtained and evaluated (STEPS 602, 604). For eachparagraph, it can be evaluated to determine if any content of theparagraph includes a particular pattern or sequence of charactersidentifying an email (STEP 606). These email identifying characters orpatterns may include character identifiers (e.g., “@”) or a sequences ofcharacters (e.g., “.com”, “.org”, “.gov”, etc.).

If there is match to one of the email identifying characters or patterns(Y branch of STEP 608), the email address may be extracted and added tothe content of a reusable resource object for an email content type(STEP 610). Additionally, the metadata of the resource object for thedocument title or subject content type (e.g., the coordinates, etc.) maybe updated based on the paragraph or email address determined. Theassembled email reusable resource objects may be returned or persisted(STEP 610). The next paragraph of the page can then be evaluated (STEP604).

Similar logic is applied for a content type identifier for a date ortime appearing in a document. FIG. 7 depicts one embodiment of a methodfor a content type identifier for a date/time content type. The contentand metadata associated with each paragraph of a page (e.g., where allpages or a subset of pages of the original document may be evaluated)may be obtained and evaluated. (STEPS 702, 704). For each paragraph, itcan be evaluated to determine if any content of the paragraph includes aparticular pattern or sequence of characters identifying an date/time(STEP 706). These date/time identifying characters or patterns mayinclude character identifiers or a sequences of characters (e.g.,“dd-mm-yyyy”, “yyyy-mm-dd”, “dd-mm-yy”, “yy-mm-dd”, etc.).

If there is match to one of the date/time identifying characters orpatterns (Y branch of STEP 708), the date/time may be extracted andadded to the content of a reusable resource object for a date/timecontent type (STEP 710). Additionally, the metadata of the resourceobject for the date/time content type (e.g., the coordinates, etc.) maybe updated based on the paragraph, or date/time determined. Theassembled date/time reusable resource object may be returned orpersisted (STEP 710). The next paragraph of the page can then beevaluated (STEP 704).

Certain reusable resources may be determined using connected componentanalysis or the like. FIG. 9A depicts one embodiment of a method for acontent type identifier for a signature content type. FIG. 9B depicts agraphical example of such a content type. Here, the original documentmay be converted to a image file format (e.g., an .svg of .png file)(STEP 902) and the resulting image read (STEP 904). This image willcomprise a set of pixels. And specifically the image file may includepixel values for each of the characters of the original document.

The image file can then be evaluated using a connected componentanalysis (STEP 906) to determine if there are a set of pixels of theimage file that should be identified that are connected above someconnected component threshold value (x). In other words, starting with apixel (e.g., a pixel value) a connected component evaluation may beperformed to determine if there are a threshold number of pixels (e.g.,starting with that pixel) of the image file that are deemed as connectedto that pixel.

If there are a threshold number of connected pixels (STEP 908), thatarea of the image file may be extracted and added to the content of areusable resource object for a signature content type (STEP 912).Additionally, the metadata of the resource object for the signaturecontent type (e.g., the coordinates, etc.) may be updated based on thesignature determined. The assembled signature reusable resource objectmay be returned or persisted (STEP 916). The next pixel of the imagefile can then be evaluated (STEP 906) if the end of the image file hasnot been reached (N branch of STEP 914).

If there are not a number of connected pixels (STEP 910), a connectedcomponent analysis beginning with the next pixel may occur (STEP 906)(e.g., if the end of the document has not been reached) (N branch ofSTEP 914).

It may be useful to briefly give an example of an interface that may beutilized by embodiments. FIG. 10A depicts one embodiment of an interfacedisplaying a document where the user may have the ability to requestthat reusable resources for content types be extracted from the documentFIG. 10B depicts the resulting reusable resources and associated contentand metadata that may be returned to the user in response to the requestand displayed in a user interface of a document authoring applicationand which may be utilized by a user in document authoring.

Those skilled in the relevant art will appreciate that the invention canbe implemented or practiced with other computer system configurationsincluding, without limitation, multi-processor systems, network devices,mini-computers, mainframe computers, data processors, and the like. Theinvention can be embodied in a general-purpose computer, or a specialpurpose computer or data processor that is specifically programmed,configured, or constructed to perform the functions described in detailherein. The invention can also be employed in distributed computingenvironments, where tasks or modules are performed by remote processingdevices, which are linked through a communications network such as aLAN, WAN, and/or the Internet.

In a distributed computing environment, program modules or subroutinesmay be located in both local and remote memory storage devices. Theseprogram modules or subroutines may, for example, be stored ordistributed on computer-readable media, including magnetic and opticallyreadable and removable computer discs, stored as firmware in chips, aswell as distributed electronically over the Internet or over othernetworks (including wireless networks). Example chips may includeElectrically Erasable Programmable Read-Only Memory (EEPROM) chips.Embodiments discussed herein can be implemented in suitable instructionsthat may reside on a non-transitory computer readable medium, hardwarecircuitry or the like, or any combination and that may be translatableby one or more server machines. Examples of a non-transitory computerreadable medium are provided below in this disclosure.

Although the invention has been described with respect to specificembodiments thereof, these embodiments are merely illustrative, and notrestrictive of the invention. Rather, the description is intended todescribe illustrative embodiments, features and functions in order toprovide a person of ordinary skill in the art context to understand theinvention without limiting the invention to any particularly describedembodiment, feature or function, including any such embodiment featureor function described. While specific embodiments of, and examples for,the invention are described herein for illustrative purposes only,various equivalent modifications are possible within the spirit andscope of the invention, as those skilled in the relevant art willrecognize and appreciate.

As indicated, these modifications may be made to the invention in lightof the foregoing description of illustrated embodiments of the inventionand are to be included within the spirit and scope of the invention.Thus, while the invention has been described herein with reference toparticular embodiments thereof, a latitude of modification, variouschanges and substitutions are intended in the foregoing disclosures, andit will be appreciated that in some instances some features ofembodiments of the invention will be employed without a correspondinguse of other features without departing from the scope and spirit of theinvention as set forth. Therefore, many modifications may be made toadapt a particular situation or material to the essential scope andspirit of the invention.

Reference throughout this specification to “one embodiment”, “anembodiment”, or “a specific embodiment” or similar terminology meansthat a particular feature, structure, or characteristic described inconnection with the embodiment is included in at least one embodimentand may not necessarily be present in all embodiments. Thus, respectiveappearances of the phrases “in one embodiment”, “in an embodiment”, or“in a specific embodiment” or similar terminology in various placesthroughout this specification are not necessarily referring to the sameembodiment. Furthermore, the particular features, structures, orcharacteristics of any particular embodiment may be combined in anysuitable manner with one or more other embodiments. It is to beunderstood that other variations and modifications of the embodimentsdescribed and illustrated herein are possible in light of the teachingsherein and are to be considered as part of the spirit and scope of theinvention.

In the description herein, numerous specific details are provided, suchas examples of components and/or methods, to provide a thoroughunderstanding of embodiments of the invention. One skilled in therelevant art will recognize, however, that an embodiment may be able tobe practiced without one or more of the specific details, or with otherapparatus, systems, assemblies, methods, components, materials, parts,and/or the like. In other instances, well-known structures, components,systems, materials, or operations are not specifically shown ordescribed in detail to avoid obscuring aspects of embodiments of theinvention. While the invention may be illustrated by using a particularembodiment, this is not and does not limit the invention to anyparticular embodiment and a person of ordinary skill in the art willrecognize that additional embodiments are readily understandable and area part of this invention.

Embodiments discussed herein can be implemented in a set of distributedcomputers communicatively coupled to a network (for example, theInternet). Any suitable programming language can be used to implementthe routines, methods or programs of embodiments of the inventiondescribed herein, including C, C++, Java, JavaScript, HTML, or any otherprogramming or scripting code, etc. Other software/hardware/networkarchitectures may be used. Communications between computers implementingembodiments can be accomplished using any electronic, optical, radiofrequency signals, or other suitable methods and tools of communicationin compliance with known network protocols.

Although the steps, operations, or computations may be presented in aspecific order, this order may be changed in different embodiments. Insome embodiments, to the extent multiple steps are shown as sequentialin this specification, some combination of such steps in alternativeembodiments may be performed at the same time. The sequence ofoperations described herein can be interrupted, suspended, or otherwisecontrolled by another process, such as an operating system, kernel, etc.The routines can operate in an operating system environment or asstand-alone routines. Functions, routines, methods, steps and operationsdescribed herein can be performed in hardware, software, firmware or anycombination thereof.

Embodiments described herein can be implemented in the form of controllogic in software or hardware or a combination of both. The controllogic may be stored in an information storage medium, such as acomputer-readable medium, as a plurality of instructions adapted todirect an information processing device to perform a set of stepsdisclosed in the various embodiments. Based on the disclosure andteachings provided herein, a person of ordinary skill in the art willappreciate other ways and/or methods to implement the invention.

A “computer-readable medium” may be any medium that can contain, store,communicate, propagate, or transport the program for use by or inconnection with the instruction execution system, apparatus, system ordevice. The computer readable medium can be, by way of example only butnot by limitation, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, system, device,propagation medium, or computer memory. Such computer-readable mediumshall generally be machine readable and include software programming orcode that can be human readable (e.g., source code) or machine readable(e.g., object code). Examples of non-transitory computer-readable mediacan include random access memories, read-only memories, hard drives,data cartridges, magnetic tapes, floppy diskettes, flash memory drives,optical data storage devices, compact-disc read-only memories, and otherappropriate computer memories and data storage devices.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having,” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,product, article, or apparatus that comprises a list of elements is notnecessarily limited only those elements but may include other elementsnot expressly listed or inherent to such process, product, article, orapparatus.

Furthermore, the term “or” as used herein is generally intended to mean“and/or” unless otherwise indicated. For example, a condition A or B issatisfied by any one of the following: A is true (or present) and B isfalse (or not present), A is false (or not present) and B is true (orpresent), and both A and B are true (or present). As used herein, a termpreceded by “a” or “an” (and “the” when antecedent basis is “a” or “an”)includes both singular and plural of such term, unless clearly indicatedwithin the claim otherwise (i.e., that the reference “a” or “an” clearlyindicates only the singular or only the plural). Also, as used in thedescription herein and throughout the meaning of “in” includes “in” and“on” unless the context clearly dictates otherwise.

APPENDIX A

REUSABLE_RESOURCE:

-   -   Int ID    -   CONTENT_TYPE contentType,        -   String content,        -   MetaData

MetaData:

-   -   Coordinate,    -   String fontType,    -   String Size

Coordinate

-   -   int xMin,    -   int yMin,    -   int xMax,    -   int yMax

Enum: CONTENT_TYPE

-   -   HEADER    -   FOOTER    -   DOCUMENT_TITLE    -   DATE    -   EMAIL    -   SIGNATURE

What is claimed is:
 1. A system, comprising: a processor; and a non-transitory computer readable medium, comparing instructions for: receiving a first document; extracting content and associated metadata of the received first document; identifying a set of reusable resource from the content and associated metadata of the first document, wherein each of the reusable resources is one of a set of content types; representing each of the identified reusable resources with a corresponding reusable object, wherein each of the reusable objects is an instance of a content type object representing a content type of the corresponding reusable resource and including metadata and content of the reusable resource as extracted from the received document; persisting the set of reusable objects at the document authoring server; and providing the set of reusable resource objects identified for the set of reusable resources in association with the first document such the reusable resource objects are adapted for use in authoring a second document using one of the plurality of document authoring tools.
 2. The system of claim 1, wherein the instructions are further for: populating a second document using the reusable resource object such that the second document includes the content of the reusable of the resource object.
 3. The system of claim 1, wherein the content and metadata is processed independently to identify any reusable resources of each specific content type
 4. The system of claim 1, wherein each of the reusable objects is in an associated content type format common to a plurality of document authoring tools
 5. The system of claim 1, wherein the first document is in a print stream format.
 6. The system of claim 1, wherein the metadata includes location information for the reusable resource.
 7. The system of claim 6, wherein the content type is identified based on the location information.
 8. A method, comprising: receiving a first document; extracting content and associated metadata of the received first document; identifying a set of reusable resource from the content and associated metadata of the first document, wherein each of the reusable resources is one of a set of content types; representing each of the identified reusable resources with a corresponding reusable object, wherein each of the reusable objects is an instance of a content type object representing a content type of the corresponding reusable resource and including metadata and content of the reusable resource as extracted from the received document; persisting the set of reusable objects at the document authoring server; and providing the set of reusable resource objects identified for the set of reusable resources in association with the first document such the reusable resource objects are adapted for use in authoring a second document using one of the plurality of document authoring tools.
 9. The method of claim 8, further comprising: populating a second document using the reusable resource object such that the second document includes the content of the reusable of the resource object.
 10. The method of claim 8, wherein the content and metadata is processed independently to identify any reusable resources of each specific content type
 11. The method of claim 8, wherein each of the reusable objects is in an associated content type format common to a plurality of document authoring tools
 12. The method of claim 8, wherein the first document is in a print stream format.
 13. The method of claim 8, wherein the metadata includes location information for the reusable resource.
 14. The method of claim 13, wherein the content type is identified based on the location information.
 15. A non-transitory computer readable medium, comprising instructions for: receiving a first document; extracting content and associated metadata of the received first document; identifying a set of reusable resource from the content and associated metadata of the first document, wherein each of the reusable resources is one of a set of content types; representing each of the identified reusable resources with a corresponding reusable object, wherein each of the reusable objects is an instance of a content type object representing a content type of the corresponding reusable resource and including metadata and content of the reusable resource as extracted from the received document; persisting the set of reusable objects at the document authoring server; and providing the set of reusable resource objects identified for the set of reusable resources in association with the first document such the reusable resource objects are adapted for use in authoring a second document using one of the plurality of document authoring tools.
 16. The non-transitory computer readable medium of claim 15, wherein the instructions are further for: populating a second document using the reusable resource object such that the second document includes the content of the reusable of the resource object.
 17. The non-transitory computer readable medium of claim 15, wherein the content and metadata is processed independently to identify any reusable resources of each specific content type
 18. The non-transitory computer readable medium of claim 15, wherein each of the reusable objects is in an associated content type format common to a plurality of document authoring tools
 19. The non-transitory computer readable medium of claim 15, wherein the first document is in a print stream format.
 20. The non-transitory computer readable medium of claim 15, wherein the metadata includes location information for the reusable resource.
 21. The non-transitory computer readable medium of claim 20, wherein the content type is identified based on the location information. 